#!/usr/bin/env bash
#

if [[ "${home_type}" = "1" ]]; then
	while true; do
		echo -en "----------------------------------------------------------------------\n"
		echo -en "| Выберите файловую систему для форматирования системного раздела\n"
		echo -en "| Оставьте поле пустым для выбора по умолчанию: ${GREEN}EXT4\n${NORMAL}"
		echo -en "----------------------------------------------------------------------\n"
		echo -en "| 1 - BTRFS\n| 2 - EXT4\n"
		read -r -p "| Ваш выбор (1/2): >>> " fs_type
		case ${fs_type} in
		1)
			echo "| Выбрана файловая система - BTRFS"
			mkfs.btrfs -qf -L ROOT /dev/${partition3}
			read -r -p "Выберите уровень компрессии \"zstd\" ( от 1 до 15 ) >>> " clvl
			mount /dev/${partition3} /mnt
			btrfs subvolume create /mnt/@
			btrfs subvolume create /mnt/@home
			btrfs subvolume create /mnt/@cache
			btrfs subvolume create /mnt/@log
			btrfs subvolume create /mnt/@snapshots
			umount -R /mnt
			mount -o rw,noatime,compress=zstd:${clvl},space_cache=v2,discard=async,ssd,ssd_spread,max_inline=256,subvol=@ /dev/${partition3} /mnt
			mkdir -p /mnt/{efi,boot,home,.snapshots,var/{cache,log}}
			mount -o rw,noatime,compress=zstd:${clvl},space_cache=v2,discard=async,ssd,ssd_spread,max_inline=256,subvol=@home /dev/${partition3} /mnt/home
			mount -o rw,noatime,compress=zstd:${clvl},space_cache=v2,discard=async,ssd,ssd_spread,max_inline=256,subvol=@cache /dev/${partition3} /mnt/var/cache
			mount -o rw,noatime,compress=zstd:${clvl},space_cache=v2,discard=async,ssd,ssd_spread,max_inline=256,subvol=@log /dev/${partition3} /mnt/var/log
			mount -o rw,noatime,compress=zstd:${clvl},space_cache=v2,discard=async,ssd,ssd_spread,max_inline=256,subvol=@snapshots /dev/${partition3} /mnt/.snapshots
			break;;
		2 | "")
			echo "| Выбрана файловая система - EXT4"
			mkfs.ext4 -qF -L ROOT /dev/${partition3}
			mount /dev/${partition3} /mnt
			mkdir -p /mnt/{efi,boot}
			break;;
		*)
			echo "| Неверный ввод, попробуйте снова..."
			continue;;
		esac
	done
else
	while true; do
		echo -en "----------------------------------------------------------------------\n"
		echo -en "| Выберите файловую систему для форматирования системного раздела\n"
		echo -en "| Оставьте поле пустым для выбора по умолчанию: ${GREEN}EXT4\n${NORMAL}"
		echo -en "----------------------------------------------------------------------\n"
		echo -en "| 1 - BTRFS\n| 2 - EXT4\n"
		read -r -p "| Ваш выбор (1/2): >>> " fs_type
		case ${fs_type} in
		1)
			echo "| Выбрана файловая система - BTRFS"
			mkfs.btrfs -qf -L ROOT /dev/${partition3}
			mkfs.btrfs -qf -L HOME /dev/${partition4}
			read -r -p "Выберите уровень компрессии \"zstd\" ( от 1 до 15 ) >>> " clvl
			mount /dev/${partition3} /mnt
			btrfs subvolume create /mnt/@
			btrfs subvolume create /mnt/@home
			btrfs subvolume create /mnt/@cache
			btrfs subvolume create /mnt/@log
			btrfs subvolume create /mnt/@snapshots
			umount -R /mnt
			mount -o rw,noatime,compress=zstd:${clvl},space_cache=v2,discard=async,ssd,ssd_spread,max_inline=256,subvol=@ /dev/${partition3} /mnt
			mkdir -p /mnt/{efi,boot,home,.snapshots,var/{cache,log}}
			mount /dev/${partition4} /mnt/home
			mount -o rw,noatime,compress=zstd:${clvl},space_cache=v2,discard=async,ssd,ssd_spread,max_inline=256,subvol=@cache /dev/${partition3} /mnt/var/cache
			mount -o rw,noatime,compress=zstd:${clvl},space_cache=v2,discard=async,ssd,ssd_spread,max_inline=256,subvol=@log /dev/${partition3} /mnt/var/log
			mount -o rw,noatime,compress=zstd:${clvl},space_cache=v2,discard=async,ssd,ssd_spread,max_inline=256,subvol=@snapshots /dev/${partition3} /mnt/.snapshots
			break;;
		2 | "")
			echo "| Выбрана файловая система - EXT4"
			mkfs.ext4 -qF -L ROOT /dev/${partition3}
			mkfs.ext4 -qF -L HOME /dev/${partition4}
			mount /dev/${partition3} /mnt
			mkdir -p /mnt/{efi,boot,home}
			mount /dev/${partition4} /mnt/home
			break;;
		*)
			echo "| Неверный ввод, попробуйте снова..."
			continue;;
		esac
	done
fi
